There are a variety of known Digital-to-Analog (D/A) converters which convert a signal in digital form to analog form. One particular type of D/A converter is a current D/A converter which utilizes current sources controlled by a digital input signal value which is being converted into an analog equivalent. Current D/A converters utilize resistors to translate a current provided by the current sources into a voltage.
Each current source can be implemented to provide a predetermined value of current. In one form, each current source provides a different amount of current, each value being a binary two multiple. Such converters are commonly said to be binarily weighted. In another form, each current source may be implemented to provide the same amount of current, wherein the D/A converter is called a monotonic converter. Monotonic converters require more current sources than binarily weighted converters to implement the same amount of resolution. However, binarily weighted converters are often not monotonic. Monotonic converters are characterized by the fact that when increasing input signal values are provided to the converter, the output never decreases in value. Binarily weighted converters are not typically monotonic because of error in precisely implementing each current source value. Due to the fact that current source values may vary over a wide range, it is possible that in binarily weighted current source converters that an output value can decrease when an input code is actually increased (i.e. non-montonic). The lack of monotonicity is very undesirable in many control applications in which D/A converters find wide usage. However, for higher resolution requirements, a monotonic converter having 2.sup.N equal valued current sources as opposed to N binarily weighted current sources may be prohibitive in size largely due to the size of an associated binary-to-thermometer digital decoder. The amount of erroneous variation in output value between two successive input codes is commonly referred to as differential nonlinearity. The maximum deviation in output value, for all code values, from the predetermined ideal output value with the corresponding input code is referred to as the integral nonlinearity. In contrast with the differential nonlinearity, the integral nonlinearity of a monotonic data converter typically results from a summation of erroneous output signal variations between several successive input codes. A data converter will have perfect differential and integral linearity if the change in output signal for successive input codes is always equal to a predetermined amount. This occurs when each component value, such as a current source value, is precise and has an expected value. Because process and manufacturing variations typically result in some degree of component variation, known data converters have a certain amount of differential and integral nonlinearity.